package Contracts;

import Impl.Dir;
import Services.MoteurJeuService;
import Services.TerrainService;

public class MoteurJeuServiceDecorator implements MoteurJeuService{
	private MoteurJeuService delegate;
	
	public MoteurJeuServiceDecorator(MoteurJeuService moteurJeuService){
		this.delegate = moteurJeuService;
	}
	
	public MoteurJeuService getDelegate(){
		return delegate;
	}
	
	// CONSTRUCTEUR
	@Override
	public void init(int i, TerrainService terrain) {
		delegate.init(i, terrain);
	}

	// OBSERVATEUR
	@Override
	public boolean estFinie() {
		return delegate.estFinie();
	}

	@Override
	public TerrainService getTerrain() {
		return delegate.getTerrain();
	}

	@Override
	public boolean estGagne() {
		return delegate.estGagne();
	}

	@Override
	public int getPasRestants() {
		return delegate.getPasRestants();
	}
	
	@Override
	public boolean haveObjectMove() {
		return delegate.haveObjectMove();
	}

	@Override
	public boolean haveHeroMove() {
		return delegate.haveHeroMove();
	}

	// OPERATEURS
	@Override
	public void verif() {
		delegate.verif();
	}
	@Override
	public void moveObjects() {
		delegate.moveObjects();
	}

	@Override
	public void moveHero(Dir d) {
		delegate.moveHero(d);
	}
	
	@Override
	public boolean equals(Object o){
		return delegate.equals(o);
	}
}
